package com.foxmail.aroundme.boring.callback;

import com.foxmail.aroundme.boring.utils.m_enum.RefreshType;
import com.foxmail.aroundme.boring.utils.m_enum.RequestErrorType;

/**
 * Created by gzl on 12/20/16.
 */

public interface RequestCallback<T> {

    /**
     * 请求之前调用
     */
    void beforeRequest(@RefreshType.Refresh int type);


    /**
     * 请求错误调用
     *
     * @param msg 错误信息
     */
    void requestError(String msg, @RequestErrorType.Request int error);

    /**
     * 请求完成调用
     */
    void requestComplete();

    /**
     * 请求成功调用
     *
     * @param data 数据
     */
    void requestSuccess(T data);

    /**
     * 是否从缓存中加载
     *
     * @param data　数据
     * @param channelId　频道
     * @param isCache　是否从缓存中获取
     */
    void requestSuccess(T data, String channelId, boolean isCache);

}
